import {AbstractControl, ValidatorFn} from '@angular/forms';

/**
 * 自定义验证规则：最小值，用于输入数字类型，如果最小值与允许空同时存在，则空的时候，最小值规则无效
 * */

export function customizeMinValueValidator(min: number, validators: { [key: string]: string }, key: string): ValidatorFn {
  return (control: AbstractControl): { [key: string]: any } => {
    if (!control.value && !validators.hasOwnProperty('required')) {
      return null;
    }

    let ret = parseInt(control.value, 10);
    ret = isNaN(ret) ? 0 : ret;
    return ret >= min ? null : {[key]: true};
  };
}
